package com.trkj.service.wdm;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.PageRequest;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.trkj.dao.wdm.JobStatusDAO;
import com.trkj.dao.wdm.StaffInformationDAO;
import com.trkj.dao.wdm.YgztTableDAO;
import com.trkj.pojo.JobStatus;
import com.trkj.pojo.StaffInformation;
import com.trkj.pojo.Ygzttable;
import com.trkj.service.ServiceException;
import com.trkj.vo.YgztTableVO;

@Service
@Transactional(rollbackFor = Exception.class)
public class YgztTableService {
	@Autowired
	private YgztTableDAO ygzttabledao;
	@Autowired
	private JobStatusDAO  jobstatusdao;
	@Autowired
	private StaffInformationDAO staffinformationdao;
	/**
	 * 分页查询所有
	 * @return
	 */
	public List<YgztTableVO> queryByPage(int page,int rows){
		List<Object[]> list =ygzttabledao.queryByNaPage(new PageRequest(page-1, rows));
		List<YgztTableVO> listvo = new ArrayList<>();
		if(list!=null){
			for(Object[] objs:list){
				Ygzttable  b = (Ygzttable) objs[0];
				JobStatus p = (JobStatus) objs[1];
				StaffInformation s =(StaffInformation) objs[2];
				YgztTableVO ygztvo = new YgztTableVO();
				ygztvo.setYgztId(b.getYgztId());
				ygztvo.setYgztBeizhu(b.getYgztBeizhu());
				ygztvo.setYgztDate(b.getYgztDate());
				ygztvo.setYgztPerson(b.getYgztPerson());
				ygztvo.setYgztStartdate(b.getYgztStartdate());
				ygztvo.setJobsId(p.getJobsId());
				ygztvo.setJobsName(p.getJobsName());
				ygztvo.setStainId(s.getStainId());
				ygztvo.setStainName(s.getStainName());
				listvo.add(ygztvo);
			}
		}
		return listvo;
	}
	
	
	/**
	 * 获取总记录条数
	 * @return
	 */
	public long queryByPageCount(){
		return ygzttabledao.count();
	}

	/**
	 * 新增
	 * @param ygztvo
	 */
	public void insert(YgztTableVO ygztvo){
		try {
			JobStatus p =jobstatusdao.findOne(ygztvo.getJobsId());
			StaffInformation s =staffinformationdao.findOne(ygztvo.getStainId());
			Ygzttable b =new Ygzttable();
			b.setJobStatus(p);
			b.setStaffInformation(s);
			b.setYgztBeizhu(ygztvo.getYgztBeizhu());
			b.setYgztDate(ygztvo.getYgztDate());
			b.setYgztPerson(ygztvo.getYgztPerson());
			b.setYgztStartdate(ygztvo.getYgztStartdate());
			ygzttabledao.save(b);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new ServiceException(e);
		}
	}
	/**
	 * 删除
	 * @param ygztId
	 */
	public void delete(Long ygztId){
		try {
			ygzttabledao.delete(ygztId);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new ServiceException(e);
		}
	}
	/**
	 * 编辑
	 * @param bs
	 */
	public void updateAdministration(YgztTableVO ygztvo){
		try {
			JobStatus j = jobstatusdao.findOne(ygztvo.getJobsId());
			StaffInformation staff =staffinformationdao.findOne(ygztvo.getStainId());
			System.out.println(ygztvo.getJobsId());
			System.out.println(ygztvo.getJobsName());
			Ygzttable y =ygzttabledao.findOne(ygztvo.getYgztId());
			y.setJobStatus(j);
			y.setStaffInformation(staff);
			y.setYgztBeizhu(ygztvo.getYgztBeizhu());
			y.setYgztDate(ygztvo.getYgztDate());
			y.setYgztPerson(ygztvo.getYgztPerson());
			y.setYgztStartdate(ygztvo.getYgztStartdate());
			ygzttabledao.save(y);
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new ServiceException(e);
		}
	}
	/**
	 * 根据id查
	 * @param bpadId
	 * @return
	 */
	public Ygzttable update(Long ygztId){
		try {
			Ygzttable ba =ygzttabledao.findOne(ygztId);
			return ba;
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			throw new ServiceException(e);
		}
		
	}
	
}
